package com.ely.coupon.common.core.result;

import lombok.Getter;

@Getter
public enum ResponseCode {
    SUCCESS(200, "success"),
    /**
     *
     */
    SYS_ERROR(40400, "系统繁忙,请稍后再试"), /*
     *
     */

    //注册失败
    SYS_USER_REGISTER_ERROR(40401, "注册失败"),

    //手机号已存在
    SYS_USER_PHONE_EXIST_ERROR(40402, "手机号或者账号已存在"),

    SYS_USER_NO_EXIST_ERROR(40410, "用户名不存在"), /*
     *
     */
    SYS_USER_PASSWORD_ERROR(40410, "密码错误"),


    PARAMS_IS_INVALID(40430, "参数校验失败"), //
    PARAM_TYPE_ERROR(40431, "参数类型错误"),
    /**
     * 优惠券相关
     */
    COUPON_NO_EXIST_ERROR(40440, "优惠券不可用"),

    COUPON_NO_STORE_ERROR(40441, "优惠卷库存不足"),

    COUPON_MAX_ERROR(40442, "优惠券领取超过了最大数"),

    UN_LOGIN(40001, "未登录"), UN_AUTH(40003, "未授权"),
    ACCOUNT_LOGOUT_SUCCESS(40002, "登出成功"),
    /*用户未登录*/
    ACCOUNT_NOT_LOGIN(10001, "用户未登录"), /*账号不存在或密码错误*/
    ACCOUNT_LOGIN_ERROR(10002, "账号不存在或密码错误"), /*账号已存在*/
    ACCOUNT_IS_EXISTENT(10003, "账号已存在"),
    /*账号不存在*/
    ACCOUNT_NOT_EXIST(10004, "账号不存在!"), /*账号已禁止  请与管理员联系*/
    USER_ACCOUNT_LOCKED(10005, "账号被锁定, 请与管理员联系"),
    LOGIN_COUNT_LIMIT(10006, "登录失败多次，请稍后在试"), /*未授权*/
    UN_ACCESS_DENIED(10007, "未授权"), /* 参数错误*/
    /*参数不为空*/
    PARAMS_NOT_IS_BLANK(20001, "参数不能为空"), /*参数无效*/
    PARAM_IS_DEFICIENCY(20004, "参数缺失"), /*暂无权限*/
    PERMISSION_NO_ACCESS(20006, "暂无权限"), AUTH_ERROR(20007, "认证失败"),
    /* 业务错误 */
    /* 业务繁忙 请稍后在试 */
    BUSINESS_UNKNOW_ERROR(30001, "业务繁忙 请稍后在试"), SYSTEM_ERROR(99999, "接口错误"),
    /* ======系统错误：40001-49999===== */
    /* 提示语 "系统繁忙，请稍后重试"*/
    SYSTEM_INNER_ERROR(40001, "系统繁忙，请稍后重试"), /*未知错误 请稍后在试*/
    SYSTEM_UNKNOW_ERROR(40002, "未知错误 请稍后在试"), /*内部系统接口调用异常*/
    INNER_INVOKE_ERROR(50001, "内部系统接口调用异常"), /*外部系统接口调用异常*/
    OUTER_INVOKE_ERROR(50002, "外部系统接口调用异常"), /*该接口禁止访问*/
    NO_ACCESS_FORBIDDEN(50003, "禁止访问"), /*接口地址无效*/
    NO_FOUND_ERROR(50004, "接口地址无效"), /* 数据错误 */
    DATA_IS_WRONG(60001, "数据错误");


    private final String msg;
    private final int code;


    ResponseCode(int code, String msg) {
        this.msg = msg;
        this.code = code;
    }
}
